package com.liachen.common.util;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;

import java.util.Collections;
import java.util.List;
@Slf4j
public class CollectionUtil {
    public static double getMedian(List<Double> numbers) {
        // 对列表进行排序
        Collections.sort(numbers);
        log.info("pe列表：{}", JSONUtil.toJsonStr(numbers));;
        int size = numbers.size();
        // 如果列表为空，中位数未定义，可以抛出异常或返回null
        if (size == 0) {
            throw new IllegalArgumentException("List is empty and median is undefined.");
        }

        // 如果列表有奇数个元素
        if (size % 2 != 0) {
            return numbers.get(size / 2);
        }
        // 如果列表有偶数个元素，返回中间两个数的平均值
        else {
            double mid1 = numbers.get((size - 1) / 2);
            double mid2 = numbers.get(size / 2);
            return (mid1 + mid2) / 2.0;
        }
    }
}
